/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package InterfaceSeccao;

import Seccao.Calculo;

/**
 *
 * @author Emanuel
 */
public class Dados {

    float base;
    float altura;
    float raio;
    int tipo;
    double area;
    double iX;
    double iY;
    double iXY;
    int centroX;
    int centroY;
    int[] xs, ys;
    Calculo calc;
    double fator=1;

    public Dados() {
        calc = new Calculo();
    }
    
    public void atualiza(){
        calcularArea();
        calcularCentro();
        calcularMomentos();
        calcularProdutos();
    }

    public void calcularCentro() {
        switch (tipo) {
            case 0: //repaint();
                break;
            case 1: // Retangulo
                centroX = (int) (base / 2);
                centroY = (int) (altura / 2);
                break;
            case 2: //Triangulo
                centroX = (int) (base*fator / 2);
                centroY = (int) (altura*fator / 2);
                break;
            case 3: // Circulo
                centroX = 0;
                centroY = 0;
                break;
            case 4: // Semi Circulo
                centroX = 0;
                centroY = (int) (4 * raio / (3 * Math.PI));
                break;
            case 5: // 1/4 Ciculo
                centroX = (int) (4 * raio / (3 * Math.PI));
                centroY = (int) (4 * raio / (3 * Math.PI));
                break;
            case 6: // Outros Poligonos
                double ax = 0;
                double ay = 0;
                for (int i = 0; i < xs.length; i++) {
                    ax = ax + xs[i];
                    ay = ay + ys[i];
                }
                centroX = (int) (ax / xs.length);
                centroY = (int) (ay / ys.length);
                break;

        }

    }

    /** Calcular Area usa os m
     * 
     */
    public void calcularArea() {
        switch (tipo) {
            case 0: //repaint();
                break;
            case 1: // Retangulo
                area = calc.areaRetang(base, altura);
                break;
            case 2: //Triangulo
                area = calc.areaTriang(base, altura);
                break;
            case 3: // Circulo
                area = calc.areaCirculo(raio);
                break;
            case 4: // Semi Circulo
                area = calc.areaSemiCirculo(raio);
                break;
            case 5: // 1/4 Ciculo
                area = calc.areaQuartoCirculo(raio);
                break;
            case 6: // Outros Poligonos
                area = calc.areaPoligono(xs, ys);
                break;

        }
    }

    /**
     * 
     */
    public void calcularMomentos() {
        switch (tipo) {
            case 0: //repaint();
                break;
            case 1: // Retangulo
                iX = calc.momentInerciaRetangX(base, altura);
                iY = calc.momentInerciaRetangY(base, altura);
                break;
            case 2: //Triangulo
                iX = calc.momentInerciaTriangX(base, altura);
                iY = calc.momentInerciaTriangY(base, altura);
                break;
            case 3: // Circulo
                iX = calc.momentInerciaCirculoX_Y(raio);
                iY = iX;
                break;
            case 4: // Semi Circulo
                iX = calc.momentInerciaSemiCirculoX_Y(raio);
                iY = iX;
                break;
            case 5: // 1/4 Ciculo
                iX = calc.momentInerciaQuartoCirculoX_Y(raio);
                iY = iX;
                break;
            case 6: // Outros Poligonos
                iX = calc.momentInerciaPoligonoX(xs, ys);
                iY = calc.momentInerciaPoligonoY(xs, ys);
                break;
        }
    }

    /**
     * 
     */
    public void calcularProdutos() {
        switch (tipo) {
            case 0: //repaint();                
                break;
            case 1: // Retangulo
                iXY = calc.produtoInerciaRetangulo(base, altura);
                break;
            case 2: //Triangulo
                iXY = calc.produtoInerciaTriangulo(base, altura);
                break;
            case 3: // Circulo
                iXY = calc.produtoInerciaCirculo(raio);
                break;
            case 4: // Semi Circulo
                iXY = calc.produtoInerciaSemiCirculo(raio);
                break;
            case 5: // 1/4 Ciculo
                iXY = calc.produtoInerciaQuartoCirculo(raio);
                break;
            case 6: // Outros Poligonos
                iXY = calc.produtoInerciaPoligono(xs, ys);
                break;
        }
    }
}
//switch (tipo) {
//            case 0: //repaint();
//                break;
//            case 1: // Retangulo
//                
//                break;
//            case 2: //Triangulo
//                
//                break;            
//            case 3: // Circulo
//                
//                break;
//            case 4: // Semi Circulo
//                
//                break;
//            case 5: // 1/4 Ciculo
//                               
//                break;
//            case 6: // Outros Poligonos
//                               
//                break;
//            
//        }